<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Usuarios extends CI_Controller {
	
	/**
	* @name index()
	* @param void
	* @return void
	* @see Usuario
	* @since 28/05/2013
	* @author Carlos Augusto Dugonski
	*/
	public function index() {
		if($this->index->logado() == 'administrador') {
			$this->index->montarPagina('usuario/usuario_view');
		} else {
			redirect('home');
		}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function criar(){
    	$aDdata['login_usuario'] = mysql_real_escape_string(strtolower($_POST['login']));
    	$aDdata['email_usuario'] = mysql_real_escape_string(strtolower($_POST['email']));
    	$oBcrypt = new Bcrypt();
		$aDdata['senha_usuario'] = mysql_real_escape_string($oBcrypt->hash($_POST['senha']));
    	$aDdata['grupo_usuario'] = mysql_real_escape_string(strtolower($_POST['grupo']));
    	$this->usuario->criar($aDdata);
    	redirect('usuarios');
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function ler(){
    	echo '{ "aaData" : ' . $this->usuario->ler() . " } ";
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function atualizar(){
    	$aDdata['login_usuario'] = mysql_real_escape_string(strtolower($_POST['login']));
    	$aDdata['email_usuario'] = mysql_real_escape_string(strtolower($_POST['email']));
    	$oBcrypt = new Bcrypt();
    	if($_POST['senha'] == NULL) {
    		$aDdata['senha_usuario'] = mysql_real_escape_string($oBcrypt->hash($_POST['senha_antiga']));
    	} else {
    		$aDdata['senha_usuario'] = mysql_real_escape_string($oBcrypt->hash($_POST['senha']));
    	}
    	$aDdata['grupo_usuario'] = mysql_real_escape_string(strtolower($_POST['grupo']));
    	$this->usuario->atualizar($aDdata);
    	redirect('usuarios');
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function deletar($iIdUsuario){
    	if ($this->usuario->deletar($iIdUsuario)) {
    		redirect('usuarios');
    	} else {
    		show_404();
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function lerByLogin(){
    	if ($this->usuario->lerByLogin($_GET['login'])) {
    		echo '{"error": "Login já existente"}';
    	} else {
    		echo '1';
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function lerById($iId){
     	if ($this->usuario->lerById($iId)) {
	    	echo json_encode($this->usuario->lerById($iId));
    	} else {
			echo 'erro';
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function login($sMesa = NULL, $sPasse = NULL){
    	if (isset($sMesa) && isset($sPasse)) {
    		$sLogin = $sMesa;
    		$sSenha = $sPasse;
    	} else if ($_POST['login'] != NULL && $_POST['senha'] != NULL) {
	    	$sLogin = $_POST['login'];
	    	$sSenha = $_POST['senha'];
    	}
    	if ($oResultado = $this->usuario->login($sLogin, $sSenha)){
    		$this->session->set_userdata(
    				array(
    						'login_usuario'		=> 	$oResultado->login_usuario,
    						'email_usuario'		=>	$oResultado->email_usuario,
    						'grupo_usuario'		=>	$oResultado->grupo_usuario
    				)
    		);
    		redirect('home');
    	} else {
    		redirect('home');
    	}
    }
    
    /**
     * @name
     * @param
     * @param
     * @return
     * @see
     * @since
     * @author
     */
    public function logout(){
    	$this->session->unset_userdata('login_usuario');
    	$this->session->unset_userdata('email_usuario');
    	$this->session->unset_userdata('grupo_usuario');
    	$this->session->unset_userdata('logado');
    	$this->session->unset_userdata('user_data');
    	redirect('home');
    }
}

/* End of file Usuarios.php */